package com.vhall.component.entity.interactive.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.collect.Lists;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 提问表
 *
 * @author zhangtao
 */
@Data
@TableName("qa_question")
public class QuestionEntity implements Serializable {

    private static final long serialVersionUID = 1597657623791L;

    /**
     * 主键
     */
    @JsonProperty(value = "id")
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 应用ID
     */

    @TableField("app_id")
    @JsonProperty(value = "app_id")
    private String appId;

    /**
     * 提问者的用户id
     */
    @TableField("user_id")
    @JsonProperty(value = "user_id")
    private Long userId;

    /**
     * 是否公开,0公开,1私密,默认0
     */
    @TableField("is_open")
    @JsonProperty(value = "is_open")
    private Integer isOpen;

    /**
     * 提问用户昵称
     */
    @TableField("nick_name")
    @JsonProperty(value = "nick_name")
    private String nickName;

    /**
     * 提问用户头像
     */
    private String avatar;

    /**
     * 提问内容
     */
    private String content;

    /**
     * 活动ID
     */
    @TableField("room_id")
    @JsonProperty(value = "room_id")
    private String roomId;

    /**
     * 状态 0未处理 1不处理 2转给主持人 3 文字回复
     */
    private Integer status;

    /**
     * 操作人
     */
    private String operator;

    /**
     * 是否置顶，1是0否,默认否
     */
    private Integer top;

    /**
     * 关心数
     */
    @TableField("care_count")
    @JsonProperty(value = "care_count")
    private Integer careCount;

    /**
     * 回答数
     */
    @TableField("answer_count")
    @JsonProperty(value = "answer_count")
    private Integer answerCount;

    /**
     * 同问数
     */
    @TableField("same_count")
    @JsonProperty(value = "same_count")
    private Integer sameCount;

    /**
     * 业务扩展字段
     */
    private String ext;


    /**
     * 显示状态，0显示1不显示，默认0
     */
    @TableField("is_show")
    @JsonProperty(value = "is_show")
    private Integer isShow;

    /**
     * 操作时间
     */
    @TableField("operate_time")
    @JsonProperty(value = "operate_time")
    private LocalDateTime operateTime;

    /**
     * 创建时间
     */
    @TableField("created_at")
    @JsonProperty(value = "created_at")
    private LocalDateTime createdAt;

    /**
     * 更新时间
     */
    @TableField("updated_at")
    @JsonProperty(value = "updated_at")
    private LocalDateTime updatedAt;

    /**
     * 删除时间
     */
    @TableField("deleted_at")
    @JsonProperty(value = "deleted_at")
    private LocalDateTime deletedAt;

    /**
     * 是否为优质问答，0否1是，默认否
     */
    @TableField("is_quality")
    @JsonProperty(value = "is_quality")
    private Integer isQuality;

    /**
     * 回答列表
     */
    @TableField(exist = false)
    private List<AnswerEntity> answers = Lists.newArrayList();

    /**
     * 同问数
     */
    @TableField(exist = false)
    @JsonProperty(value = "is_same")
    private Integer isSame;
}
